<?php
/**
 * Controller_Admin_ProductProperty
 *
 * Класс Controller_Admin_ProductProperty отвечает за обработку админских страниц свойств товаров
 *
 * @author Mike
 */
class Controller_Admin_ProductProperty extends Controller_Admin {

	/**
	 * Выбор действия по URL
	 *
	 */
	public function action() {
		if(!User_Seance::isAdmin()) throw new Exception('', 403);
		switch ($this->arrRequest[2]) {
			case '':
				$this->actionPropertiesList();
				break;
			case 'add':
				$this->actionAdd();
				break;
			case 'edit':
				$objProductProperty = new ProductProperty(intval($this->arrRequest[3]));
				if(!$objProductProperty->id) throw new Exception('', 404);
				$this->actionEdit($objProductProperty);
				break;
			default: throw new Exception('', 404);
		}
	}

	/**
	 * Выводит список свойств товаров
	 *
	 */
	public function actionPropertiesList() {
		$arrProperties = ProductProperty::getAllProperties();
	
		$this->bodyAttr = 'properties cms';
		$this->title = 'Свойства товаров';
		$this->pageHead = $this->title . '(<a href="' . W_ADMIN . 'product_properties/add">Добавить</a>)';
		
		 
		$this->showHeader();
			View_ProductProperty::showAdminList($arrProperties);
		$this->showFooter();
	}
	
	/**
	 * Добавление свойства товара
	 *
	 */
	public function actionAdd() {
		if (isset($_POST['ProductProperty'])) {
			$objProductProperty = new ProductProperty($_POST['ProductProperty']);
			if ($objProductProperty->save()) User_Seance::moveTo(W_ADMIN . 'product_properties');
		}
		else $objProductProperty = new ProductProperty();
	
		$this->title = $this->pageHead = 'Добавление свойства товара';
			
		$this->showHeader();
			View_ProductProperty::showEditForm($objProductProperty);
		$this->showFooter();
	}
	
	/**
	 * Редактирование свойств товара
	 *
	 * @param ProductProperty $objProductProperty - объект свойства
	 */
	public function actionEdit(ProductProperty $objProductProperty) {
		if (isset($_POST['ProductProperty'])) {
			$objProductProperty = new ProductProperty($_POST['ProductProperty']);
			if ($objProductProperty->save()) User_Seance::moveTo(W_ADMIN . 'product_properties');
		}
	
		$this->title = $this->pageHead = 'Редактирование свойства товара';
			
		$this->showHeader();
			View_ProductProperty::showEditForm($objProductProperty);
		$this->showFooter();
	}
}